y (Sticky Matching) গাইড ও নোট

Web Development - জাভাস্ক্রিপ্ট রেগএক্সপি (Javascript RegExp) - RegExp এর Flags এর গভীরতা
188

Sticky Matching একটি RegExp এর বিশেষ বৈশিষ্ট্য যা শুধুমাত্র স্ট্রিংয়ের বর্তমান পজিশন থেকে মেলা প্যাটার্ন খুঁজে বের করার জন্য ব্যবহৃত হয়। এটি y (sticky) ফ্ল্যাগ এর মাধ্যমে সক্রিয় করা যায়, যা স্ট্রিংয়ের মেলানোর প্রক্রিয়াকে আরো নির্দিষ্ট এবং সীমাবদ্ধ করে তোলে।


Sticky Matching কী?

Sticky Matching বা y ফ্ল্যাগ RegExp এর একটি বৈশিষ্ট্য, যা মেলানোর প্রক্রিয়াকে প্রথম অবস্থান থেকে শুরু করতে বাধ্য করে। যখন y ফ্ল্যাগ ব্যবহার করা হয়, তখন এটি শুধুমাত্র স্ট্রিংয়ের যে পজিশনে মেলা শুরু হয়, সেখান থেকেই মেলা করতে চেষ্টা করে। অর্থাৎ, এটি স্ট্রিংয়ের পূর্ববর্তী অংশে কোনো মিল খোঁজে না, বরং শুধুমাত্র কারেক্ট পজিশনে মিল খুঁজতে কাজ করে।

এটি সাধারণত প্যাটার্নের প্রথম অবস্থান থেকে পরবর্তী মিল অনুসন্ধানে ব্যবহৃত হয়। এর মানে, যখন একটি প্যাটার্ন একটি নির্দিষ্ট পজিশনে মেলে না, তখন এটি আর পরবর্তী অংশে মেলা খুঁজবে না


y ফ্ল্যাগ এর ব্যবহার

y ফ্ল্যাগ ব্যবহার করার সময়, RegExp শুধুমাত্র বর্তমান পজিশন থেকে মিলাতে চেষ্টা করবে এবং যদি কোনো মিল না পায়, তবে এটি পরবর্তী স্ট্রিং অংশে খুঁজবে না।


Syntax:

let regex = /pattern/y;

এখানে, /pattern/y প্যাটার্নটি sticky matching মোডে চলে যাবে, যা শুধুমাত্র বর্তমান পজিশনে মেলাতে চেষ্টা করবে।


উদাহরণ: Sticky Matching

let regex = /abc/y;
let str = "abcabc";
console.log(regex.test(str));  // true
console.log(regex.test(str));  // false

এখানে, প্রথম test() মেথডে "abc" স্ট্রিংয়ের প্রথম অবস্থানে abc প্যাটার্নটি মেলে। কিন্তু দ্বিতীয়বার test() কল করার পর, RegExp বর্তমানে স্ট্রিংয়ের পরবর্তী অবস্থানে (যেটি "abc" পরবর্তী অংশ) মেলা খুঁজবে এবং সেখানেও abc প্যাটার্নটি মেলে না, কারণ sticky matching মোড সক্রিয় থাকায় প্রথম মিলের পরে এটি আর কোনো স্থানে খোঁজে না।


g ফ্ল্যাগ এবং y ফ্ল্যাগের মধ্যে পার্থক্য

  • g (global) ফ্ল্যাগ RegExp প্যাটার্নটি পুরো স্ট্রিংয়ে সমস্ত মিল খুঁজে বের করতে ব্যবহৃত হয়।
    • এটি প্রথম মিল পাওয়ার পর পরবর্তী মিল খুঁজতে স্ট্রিংয়ের পরবর্তী অংশে চলে যায়।
  • y (sticky) ফ্ল্যাগ RegExp প্যাটার্নটি শুধুমাত্র বর্তমান অবস্থান থেকে মিল খুঁজতে চেষ্টা করে। এটি প্রথম মিলের পরে পরবর্তী মিল খোঁজার জন্য স্ট্রিংয়ের পরবর্তী অংশে যায় না

উদাহরণ: g এবং y ফ্ল্যাগের পার্থক্য

let regexGlobal = /abc/g;
let regexSticky = /abc/y;
let str = "abcabc";

console.log(regexGlobal.test(str));  // true
console.log(regexGlobal.test(str));  // true
console.log(regexSticky.test(str));  // true
console.log(regexSticky.test(str));  // false

এখানে, regexGlobal এর মাধ্যমে প্রথম মিল পাওয়ার পর দ্বিতীয়বার test() কল করলে এটি পরবর্তী মিল খুঁজে পায় এবং মেলে যায়। কিন্তু regexSticky এর মাধ্যমে, প্রথম মিল পাওয়ার পর দ্বিতীয়বার test() কল করলে এটি পরবর্তী অংশে আর মিল খুঁজবে না, কারণ y ফ্ল্যাগটি সেট করা আছে এবং এটি sticky মোডে চলেছে।


যখন y ফ্ল্যাগ ব্যবহার করবেন

Sticky Matching বা y ফ্ল্যাগ সাধারণত তখন ব্যবহার করা হয় যখন আপনি নিশ্চিত করতে চান যে একটি প্যাটার্ন প্রথম মিল থেকে শুরু করে মেলা খুঁজবে এবং কোনভাবেই পরবর্তী অংশে মেলা খুঁজবে না। এটি তখন খুবই উপকারী যখন স্ট্রিংয়ের প্রতিটি অংশের উপর নির্দিষ্টভাবে কাজ করতে চান, এবং আপনি চান না যে প্যাটার্নটি একটি মিল পাওয়ার পর পরবর্তী অংশে চলে যাক।


সারাংশ

Sticky Matching (y ফ্ল্যাগ) RegExp প্যাটার্নটি স্ট্রিংয়ের নির্দিষ্ট অবস্থান থেকে মিল খুঁজতে সাহায্য করে। এটি global (g) ফ্ল্যাগের বিপরীতে, যেখানে স্ট্রিংয়ের পুরো অংশে মিল খোঁজা হয়, সেখানে sticky matching প্যাটার্নটি শুধুমাত্র বর্তমান অবস্থানে মিল খুঁজবে। y ফ্ল্যাগ ব্যবহার করে আপনি নিশ্চিত করতে পারেন যে প্রথম মিল পাওয়ার পর পরবর্তী অংশে খোঁজা হবে না।

Content added By
Promotion

Are you sure to start over?

Loading...